home *** CD-ROM | disk | FTP | other *** search
/ Zoom 2 / Zoom - Release 2 (1996)(Active Software)[!].iso / graphics / misc / smartfractal / smartfractal.doc < prev    next >
Text File  |  1995-01-30  |  49KB  |  868 lines

  1.  
  2.                              Smart Fractal V1.3
  3.                                      by
  4.                               Avogadro Simone
  5.  
  6.                          V 1.3 release in 30/1/95
  7.  
  8.  
  9.  
  10.                                USER'S MANUAL
  11.  
  12.  
  13.  IMPORTANT:  THIS PRODUCT IS SHAREWARE, IF YOU USE AND LIKE IT PLEASE SEND
  14. $10 TO THE AUTHOR. IF YOU DO  NOT KNOW WHAT SHAREWARE IS, PLEASE READ  THE
  15. SHAREWARE.DOC  FILE FIRST, YOU FIND  IT IN THE SAME  ARCHIVE OF THIS FILE.
  16. ALSO  NOTE  'REQTOOLS'   IS  WORK  OF   NICO  FRANCOIS,  REGISTERING   FOR
  17. 'SMARTFRACTAL' YOU DON'T REGISTER FOR 'REQTOOLS'.
  18.  
  19.  
  20.                                    INDEX
  21.  
  22.                 Chapter 1: The philosophy of the program
  23.  
  24.        1.1     What's a fractal ?
  25.        1.2     Introduction to Smartfractal
  26.        1.3     What's different (and some background story)
  27.        1.4     Some known spots
  28.        1.5     Other goodies
  29.  
  30.                      Chapter 2: The program's menu
  31.  
  32.        2.1     Project
  33.        2.1.1     Informations
  34.        2.1.2     Loading/saving files
  35.        2.1.3     Importing from other programs
  36.        2.1.4     Setting the priority
  37.        2.1.5     Exiting the program
  38.  
  39.        2.2     Controls
  40.        2.2.1     Graphic controls
  41.        2.2.2     Methods tuning
  42.        2.2.3     Zoom control
  43.        2.2.4     Misc controls
  44.        2.2.5     Buffers
  45.  
  46.        2.3     Math
  47.        2.3.1     Editing parameters
  48.        2.3.2     Selecting the fractal type
  49.        2.3.3     Determining the type of math
  50.        2.3.4     Regenerating the image
  51.  
  52.        2.4     Colors
  53.        2.4.1     File operations
  54.        2.4.2     Palette editor
  55.        2.4.3     Choosing the rendering methods !!
  56.        2.4.4     Cycling
  57.  
  58.                   Chapter 3: Other features
  59.  
  60.        3.1     Commands of the toolbar
  61.        3.2     Keyboard commands
  62.        3.3     Preferences and setup
  63.  
  64.                   Chapter 4: Miscellaneous informations
  65.  
  66.        4.1     How to contact the author
  67.        4.2     Improvements
  68.        4.3     Known bugs
  69.        4.4     History
  70.        4.5     People I wish to thank
  71.        4.6     Bibliography
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.                 Chapter 1: The philosophy of the program
  79.  
  80.  This chapter contains all the informations needed to use Smartfractal. It
  81. briefly  illustrates the main  features of the  program and gives the user
  82. tips  on  how  to  obtain  some  beautiful  images.  Also gives some basic
  83. informations on what the fractals are.
  84.  
  85.        1.1     What's a fractal ?
  86.  
  87.  A  fractal is ... Ehrm... It's a fractal! Just kidding, if you don't know
  88. what a fractal is you will still be able to use Smartfractal but maybe you
  89. will not understand the meaning of some of the options. I won't explain in
  90. depth what a fractal is as this  would require too much space and this  is
  91. not  the  purpose  of  this  documentation.  However there are some simple
  92. things about  fractals anyone  can understand  even without  reading whole
  93. (sometimes  boring) books of  math. First of  all the name: Fractals, what
  94. does this name mean? Basically this refers to the fact that measuring  the
  95. number  of dimensions of one of these 'things' with some modern math techs
  96. (measuring the Hausdorff's dimension)  would give a 'weird'  number (maybe
  97. an  irrational number  or a  fraction, so  'fractal'). This means that the
  98. thing you see on a 2-dimensional sheet of paper has a different  dimension
  99. (Eg.: log(4/3)). Fun, and so? Well, that's difficult to interpret but this
  100. usually  derives from the fact that these  objects are defined by means of
  101. infinite recursion and so you can cut 1/4 of the object and it will occupy
  102. 1/3 (!!!)  of the  space of  the original  (that's the  case of the Kock's
  103. curve that you can find on the books used in secondary schools). We talked
  104. about  recursion, together  with infinity  it is  one of  the 'secrets' of
  105. fractals, the beauty of  these object derives from  the fact that you  can
  106. theorically  zoom-in forever  and always  discover new  zones, all of them
  107. will  look  like  the  ones  you  saw  before  but will always be somewhat
  108. different.  The graphical representation  of fractals is  done iterating a
  109. mathematical formula and studying its behaviour for each single point.  As
  110. we cannot afford to examine an infinite number of values for each point on
  111. the screen we usually stop after a finite number of iterations, the higher
  112. the number of steps before stopping, the more precise the drawing will be.
  113. The  fractals you can explore with  Smartfractal are all point-based, this
  114. means that the color  of a single point  depends only on the  behaviour of
  115. that single point. For each point we study the convergence/divergence of a
  116. series defined by the type of fractal and by the point itself, we say that
  117. the  point is in  the set if  the series converges,  otherwise we say that
  118. it's out of the set. The deeper we go into the set and the harder will  be
  119. to  determine if a point generates a series that diverges or converges and
  120. so  the  higher  will  be  the  number  of  iterations needed to obtain an
  121. acceptable image of that zone.
  122.  
  123.        1.2     Introduction to Smartfractal
  124.  
  125.  The  very first time  you will run  Smartfractal (Smart from  now on) you
  126. will probably want  to setup the  preferences as the  default behaviour of
  127. Smart  is to use parameters acceptable on  the most basic machine (like my
  128. A500 :-),  just browse  the control  menu to  set the  desidered number of
  129. colors, the correct image size and the most suitable number of iterations,
  130. if  you don't know  what this means  then you'd better  read the whole 1st
  131. chapter before beginning for better results. Now go to the colors menu and
  132. set the internal and the external coloring methods (these are peculiar  to
  133. Smart!),  now choose the fractal type  you prefer and save the preferences
  134. in the 'S:' directory, call them 'SmartFractal.prefs'. Done? O.K. You just
  135. finished  the  basic  setup!  From  now  on  Smart  will  start  with your
  136. preferences. Maybe you now want to zoom in, if so just click in the center
  137. of  the zone you want to zoom, adjust the box size with the gadgets on the
  138. right side and click on the zoom gadget (or select the zoom option in  the
  139. control  menu), Smart will  start to calculate  that area. After a certain
  140. number of  zooms you  will probably  decide to  zoom out,  just select the
  141. unzoom  menu!  If  you  cannot  find  anything beautiful you may decide to
  142. render pre-determined zones, if so just read paragraph 4!
  143.  
  144.        1.3     What's different (and some background story)
  145.  
  146.  What you have been  doing up to now  was possible even in  the most basic
  147. fractal  generator, so what  does Smart do  that others don't?  I chose to
  148. write Smart after re-reading a  book talking about fractals, the  pictures
  149. on that book looked somewhat nicer than the ones I could generate with the
  150. available  programs. The main difference was that these pictures were also
  151. colored  internally,  this  gave  them  a  totally  different  look. I was
  152. disappointed not to have a program to do that, unfortunately the tech used
  153. to  color that  pictures was  really time  consuming and would have slowed
  154. down  the  generation  of  images  to  an  unacceptable rate even on 68040
  155. machines,  so I gave off for some  time. Sometime later I happened to look
  156. again at that book and noticed that  some figures used a tech to draw  the
  157. external  part that was  quite simple to  implement but still  I could not
  158. find any program able to do that, what a shame, I thought, but then I  had
  159. an  idea: Why not to  create my own rendering  tech for the internal zones
  160. and use  the one  seen in  the book  for the  external ones  ? I  began to
  161. program  and in less than  a week I discovered  that my techs worked quite
  162. good, I just had to  write everything except from the  rendering routines,
  163. but  I were so  happy that the  things went on  by themselves. Some months
  164. after (I  had some  exams to  do so  I left  the project  for some time) I
  165. stumbled  into a disk with the word "Smartfractal" written on it, I picked
  166. it up, created the  user interface, added many  features and after a  hard
  167. work  I came up with  the very first beta  version. Some month have passed
  168. from that day and with the new versions I have added anything I could find
  169. useful to the program.  The program you are  using now is the  result of a
  170. hard  work and  so I  would appreciate  any form  of encouragement as I am
  171. human too  :-). Just  write a  postcard if  you really  do not think to be
  172. worth supporting me ;-( that postcard will let me know that there's people
  173. out there that appreciates my work !
  174.  
  175.  
  176.        1.4     Some known spots
  177.  
  178.  If  you ever happened  to read a  book about fractals  surely you'll have
  179. desired to render the same  pictures, apart from the problem  mentioned in
  180. the  previous paragraph,  sometimes the  informations on  how to  get that
  181. pictures are omitted! So I  decided to include a directory  containing the
  182. preference  files needed  to render  some very  known images and some less
  183. known ones that  I think to  be worth a  look! If you  want to render such
  184. zones  just  select  'Prefs->Load  spot'  and  than  look into the 'Spots'
  185. directory in the same directory of Smart. You'll notice that the spots are
  186. divided according to the type of  fractal. If you want to render  an image
  187. never  seen on books just enter the 'Volterra' dir and load the 'Seahorse'
  188. spot! Other unknown spots are found  in the dirs of the inverted  sets (by
  189. now  Julia, Mandelbrot and Julia parameter  plane), you can also find some
  190. beautyful spots in the 'Weird' directory, these are funny images  obtained
  191. by setting 'not too meaningful' parameters, most of them can be considered
  192. interference  images, because  of this  most of  the spots  in the 'Weird'
  193. drawer should be loaded as preferences.
  194.  
  195.        1.5     Other goodies
  196.  
  197.  On suggestion I added two new directories: 'Colors' and 'Prefs', they  do
  198. contain  some pre-defined colors for both AGA and non-AGA machines and the
  199. basic preferences for the different types of fractals.
  200.  
  201.  
  202.                      Chapter 2: The program's menu
  203.  
  204.  This chapter explains the meaning and the use of the various voices found
  205. in the menus.
  206.  
  207.        2.1     Project
  208.  
  209.  This menu contains all the controls concerning general operations.
  210.  
  211.        2.1.1     Informations
  212.  
  213.  There are two voices giving informations  in this menu. The first one  is
  214. "info",  it gives  informations on  the type  of fractal that is currently
  215. set, the window being drawn, the number of colors, iterations and the type
  216. of math that had been used to render the current image (useful in case you
  217. are using  the "auto"  mode), it  also states  if the  selected fractal is
  218. parametric  and if it's  parametric it shows  the value of the parameters,
  219. also present the configuration found by Smart (CPU+FPU+AGA support),  also
  220. if  you turned  buffers on  you'll find  here the  amount of  mem taken by
  221. buffers. The second voice giving  informations is "about", this shows  the
  222. program  name, version  and revision,  a shareware  message and my contact
  223. address.
  224.  
  225.        2.1.2     Loading/saving files
  226.  
  227.  With  the  "project"  menu  you  can  either  save  the current situation
  228. (comprehending  all  of  the  preferences)  together  with the image being
  229. displayed, or  save only  the current  settings (comprehending  the window
  230. position, fractal type, math, colors etc.). If you want to save everything
  231. (ie.:  Image+settings) choose the "save" option directly in the main menu,
  232. the situation will be saved as a standard iff image followed by a  special
  233. field added by Smart to be able to recall the infos about that image. Once
  234. you  want to recall that situation just select "load" in the main menu and
  235. the  situation  will  be  restored.  If  you  want  to  save/load just the
  236. situation  but  not  the  image  choose  the voice "prefs" and than select
  237. "load" or "save".  Note that you  CANNOT recall only  the situation (saved
  238. with  the "prefs" voice)  using the "load"  in the main  menu, this is the
  239. case of the spots  present in this package,  you must use the  "load spot"
  240. option from the "prefs" voice. Before saving the whole image you can go to
  241. the options an turn iff compression on/off, note that if you are saving to
  242. an  autocompressing device you'd  better leave it  off as the standard iff
  243. compression method is run-length 1, that's quite inefficient. Please  note
  244. that if you load an image saved with Smart in an art package and than save
  245. it  back the package will NOT retain  the information about the fractal so
  246. you won't be able to reload it with Smart, so when you do retouch an image
  247. do not save it over the original  or you'll not be able to reload  it with
  248. Smart!
  249.  
  250.        2.1.3     Importing from other programs
  251.  
  252.  From  V1.3 Smart offers you the option to import from other programs your
  253. favourite  spots,  just  select  "Prefs->Import"  and  pick the data file,
  254. actualy  Smart  supports  the  following  formats:  Mandelmania,  MisterM,
  255. Lyapunovia, MandelA (this is now 100% as I had to guess the format :-), if
  256. you use a program  other than these you  may try anyway to  import as many
  257. programs  do use Mandelmania-like  data files. If  this fails and you have
  258. want me to add an other format simply write to me.
  259.  
  260.        2.1.4     Setting the priority
  261.  
  262.  The  project  menu  has  a  "Priority"  voice, it will pop-up a requester
  263. asking  a number in range -10..+10, this will be the Smart's priority. The
  264. higher the number, the  higher the priority. If  you want to do  something
  265. else  while drawing fractals  you'd better set  this to -1,  this way most
  266. programs will have higher priority  and will give prompt response  to your
  267. imputs.  In some cases it may be useful to set it to lower values but this
  268. should be rare. You  may use positive values  to speed up a  bit, but this
  269. will be a realy little bit. Be aware that setting a priority higher than 5
  270. may  cause  some  you  some  problems  as  all  standard  programs will be
  271. unresponsive while Smart will be calculating (and with fractals this might
  272. take a lot!).
  273.  
  274.        2.1.5     Exiting the program
  275.  
  276.  This  is  the  simplest  thing,  just  select  "Quit"  and you will see a
  277. requester  come up to ask you if you  really want to exit, just select yes
  278. and you  will terminate  Smart. If you  are using an  Unregistered version
  279. of  Smart a requester will pop-up asking  you to register (sorry, it's the
  280. rule :-).
  281.  
  282.        2.2     Controls
  283.  
  284.  This  menu contains all  the controls concerning  the aspect of the image
  285. and giving controls about the zoom method and options.
  286.  
  287.        2.2.1     Graphic controls
  288.  
  289.  There are  four voices  controlling the  appearance of  the image  on the
  290. screen.  The first one is "Size", this enables  you to set the size of the
  291. image to render, there  are 4 predefined sizes  and a "custom" option.  If
  292. you  chose the "custom"  option you'll get  a requester, if  you are using
  293. Kickstart V2.0+ you'll  get a ScreenMode  requester and you'll  be able to
  294. select any available resolution (comprehending any non-standard resolution
  295. available via third-party Monitor Types) and number of colors, please note
  296. that  you's  better  NOT  select  special  modes or non-proportional modes
  297. unless  you  want  to  make  some  weird tests (non-proportional modes are
  298. 1280x512  and  640x256),  so  if  you  wand  to  create a backdrop for the
  299. Workbench you  should select  Laced-Hi Res  and than  convert the image to
  300. non-laced hi res with a graphic package (Dpaint will do). If you are using
  301. KS1.3  or less you'll get  a string requester and  you'll be able to enter
  302. the desidered vertical size, the horizontal one will be determined by  the
  303. "aspect" option, if you choose a vertical size lesser then or equal to 256
  304. the  screen size will be  320x256 and your selection  will affect only the
  305. size of the image. If you choose a number greater than 256 you'll also set
  306. the size of the  screen, remember that the  screen will always have  a 5/4
  307. aspect (that's the default on PAL machines), if you choose a vertical size
  308. greater  or equal to 400 you'll get a hi-res interlaced screen. The second
  309. voice influencing the image is "aspect", you can select either "square" or
  310. "rectangular" to set the aspect to  4:4 or to 5:4 (like the  screen). Than
  311. there is the "colors" option, you can there choose the number of colors on
  312. the  screen, please note that  Smart will try to  open the screen with the
  313. desidered number of colors even if your machine has not the capability  to
  314. display  them, this will blank the screen  if you select 64 colors (that's
  315. extra half bright)  or more and  hi-res on a  non AGA machine  with KS1.3,
  316. this  causes you not  to be able  to see anything  on the screen, the only
  317. solution is to  terminate the drawing  pressing Amiga-X and  after a while
  318. pressing  return,  then  press  Amiga-Q  and  finally  'Y'  to quit Smart.
  319. Surprisingly selecting 256 colors on KS1.3 in low-res will result in  just
  320. 32  being displayed but 8 being stored in memory, so you can draw and than
  321. store 256 color images that you'll  be able to display on AGA  machines or
  322. with  video enanchers.  Please note  that some  resolutions will slow down
  323. significantly the drawing on non-AGA  machine, that's not a bug,  it's due
  324. to the internal multiprocessing architecture of the amiga that assigns too
  325. few  time to the 680x0 (ie.: that's the  case of 16 color hi-res where the
  326. machine almost stops). Then there is the "title" toggle, with this one you
  327. can turn on/off the  screen title (if you  turned it off, selected  a full
  328. screen  image and turned on autozoom then  use Amiga-N and Amiga-M to move
  329. the screen to front/back without zooming).
  330.  
  331.        2.2.2     Methods tuning
  332.  
  333.  In this menu you can set two options to control the methods to render the
  334. image,  both  of  them  will  give  you  control  on  the  accuracy of the
  335. representation.  The first one is "Depth",  with this voice you can select
  336. how  many  iterations  to  take  before  deciding that a point generates a
  337. series  that  converges.  Keep  this  number  high to have a more accurate
  338. representation of the image, keep it low to have a fast one, note that the
  339. deeper you go into the image the higher will have to be this number to get
  340. a realistic representation. If you have yet completed the image and  raise
  341. the  number of iterations  a requester will  pop-up asking if  you want to
  342. update instead of redrawing, if the internal color is solid and the Buffer
  343. is on will be able to  choose either "Fast" or "Exact", unless  the number
  344. of  iterations is  too high  you'd better  select "Exact", if the internal
  345. color is  not solid  but the  buffer is  on you'll  be able to select only
  346. "Exact"  or  no  update.  The  second  voice  concerning representation is
  347. "Blocks", it allows you to set how big the blocks will be and so how  many
  348. passes  will the image take  to complete, from V1.3  of Smart you may also
  349. select "Tesselate". If you turn tesselation on the screen will be  divided
  350. in  two blocks, each block will be  divided into two smaller blocks and so
  351. on, this may introduce a BIG error in some cases and may be error-free  in
  352. others, the problem is that with this mode an area surrounded by pixels of
  353. the  same color is considered to be  filled with that color, this would be
  354. true if pixels had no size, but may cause approximation in real life.  You
  355. may also select to use the 'traditional' blocks, this gives you control on
  356. the  degree of approximation in drawing  the image, the bigger the blocks,
  357. the faster will be  the rendering and the  more you are like  to lose some
  358. details.  This option should be used with  care as it has a big potential,
  359. there  are  zones  where  setting  the  blocks  to 8x8 will not affect the
  360. quality  of the image but will speed up its generation more than 10 times,
  361. in  other  zones  even  setting  the  2x2  option  will  give  you a quite
  362. inaccurate  representation  of  the  image  and  will not be significantly
  363. faster than the pixel-perfect 1x1 mode.  There is no way to tell  what the
  364. best  block size  is, generally  4x4 should  not affect  significantly the
  365. image integrity but will  give a great speed  improvement. If you use  the
  366. 8x8  option be careful to set a  higher number of iterations to compensate
  367. the possible imprecisions.
  368.  
  369.        2.2.3     Zoom control
  370.  
  371.  There are four voices concerning zooming  in this menu. The first one  is
  372. "zoomrate",  it allows you to set how much you will zoom, that is how much
  373. of the zone around the point  you selected will be zoomed. The  second one
  374. is  "autozoom", just select "on" or "off". If you turn it on each time you
  375. want to zoom you'll just have to click in the center of the zone you  wish
  376. to  zoom and the  zoom will take  automatically place even  if you did not
  377. select  the  voice  "zoom".  The  voice  "zoom"  is used when the autozoom
  378. feature is off to zoom in a zone, just select this voice and than click in
  379. the  center of the  zone you want  to see, if  you want to cancel the zoom
  380. just click outside of the image or press the right mouse button. The  last
  381. option  "unzoom" lets you zoom  off the current image,  just select it and
  382. the image will be recalculated automatically without further actions.
  383.  
  384.        2.2.4     Misc controls
  385.  
  386.  There are four more toggles providing generic controls on the setup. This
  387. toggles are "Autoredraw", "Pack iff", "Be quiet" and "Toolbar", the  first
  388. one  let's you  disable the  auto-update function  that redraws  the image
  389. after any change in the settings, when this is off the redraw will  happen
  390. only  if the screen had been rebuilt and the image disappeared. The second
  391. toggle is to turn on/off the  iff compression (see above for more  infos).
  392. When  the "Be quiet" switch is on you won't be prompted before overwriting
  393. existing files and you won't be presented a requester once the drawing had
  394. terminated (this will also turn off the screen-to-front feature). The last
  395. toggle  is  "Toolbox"  and  when  activated  (by default) will turn on the
  396. toolbar.
  397.  
  398.        2.2.5     Buffers
  399.  
  400.  The  last option in this menu is "Buffers",  you may turn it off or on as
  401. all toggles. When you turn it on you'll get a requester asking if you want
  402. full buffering or 3DOnly buffering. If you select "3DOnly" you'll be  able
  403. to  see the 3D Overlay once the  drawing has been completed, and will also
  404. be able to use the Update functions (more iterations of different type  of
  405. coloring),  turning  on  "3DOnly"  will  not  slow  down significantly the
  406. calculations (about 0.5-2 secs). If you select a "Full" buffer, you'll get
  407. by default the 3D Buffer but you'll also get the color buffer, when it  is
  408. active  you may change  the internal/external coloring  method and get the
  409. screen updated immediately, this will unfortunately slow down the  drawing
  410. a lot, from 2 to 40 secs !!!. If you know in advance that the drawing will
  411. take  a big amount of  time and have enough  memory you'd better turn full
  412. buffer on, else, if you are  just browsing, you'd better turn on  only the
  413. 3DBuffer.  Please  note  that  the  buffers  are  allocated when you start
  414. drawing so don't  worry if the  info window says  that there's no  buffer,
  415. also  note that turning the  buffers off will also  free the allocated mem
  416. immediately.
  417.  
  418.        2.3     Math
  419.  
  420.  This  menu  contains  all  the  voices  that  involve  direct  control of
  421. mathematical aspects of the drawing.
  422.  
  423.        2.3.1     Editing parameters
  424.  
  425.  As  Smart  features  parametric  fractals  (Julia,  Volterra-Lotka, Julia
  426. Parameter plane  and Lyapunov  space) it  also enables  you to specify the
  427. value   of  these  parameters.  Julia,  JuliaPP  and  Volterra  do  use  2
  428. parameters,  in  the  Julia  sets  the  parameter  is a complex number and
  429. indicates  a point of the corresponding Mandelbrot set, if while examining
  430. the Mandelbrot set you wish to  pick a point and set the  Julia parameters
  431. to  that  point  just  select  the  "set  point"  voice  and  click in the
  432. Mandelbrot set on the point you  wish to use (Tip: just after  setting the
  433. point  switch to the Julia set, you'll get a view of the same window as it
  434. appears in the Julia set and it will look similar to the region you picked
  435. the  point  from,  the  nearer  to  the  point  you'll  go  the lesser the
  436. differences  will be :-). However you may know some values (maybe you have
  437. a  book)  and  want  to  introduce  them  manually,  if so just choose the
  438. "edit point" option and you'll get a requester asking for the real part of
  439. the parameter and then for the imaginary one. If you changed your mind and
  440. no longer want to edit the parameters just hit return twice. Maybe you got
  441. also the coordinates of the window you have to zoom, if so just choose the
  442. "edit window"  voice and enter the value you wish to use (once again press
  443. return to keep the actual values). Note that the window requester will not
  444. allow you to specify all the four values as you may have expected, this is
  445. because Smart does not want you  to get weird image aspect (after  all who
  446. wants  a  Mandelbrot  set  that  looks  deformed ??). A different approach
  447. should be used for Lyapunov space,  here you may set the sequence  and the
  448. color  divide. The color divide  is a number that  says how much shoul the
  449. palette be spreden around,  the higher, the lesser  you'll be like to  see
  450. the  same  color  used  twice,  the  lower,  the  more  you'll  be able to
  451. distinguish potential of points. To set the color divide just select "edit
  452. point", you'll be prompted a number (by default the old value). The second
  453. parameter is the sequence to be used generating Lyapunov space, this is  a
  454. sequence of 'A' and 'B' (no matter the case), each letter in this sequence
  455. has the following meaning : 'A' means that the 'x' value should be used in
  456. the  iteration, 'B'  means that  the 'y'  value should  be used. So if you
  457. select 'ABB' the first iteration will use 'x' as parameter, the second and
  458. third will use 'y' and than the sequence will repeat (the fourth will  use
  459. 'x',  the fifth and  sixth will use  'y' etc...). So  don't use a sequence
  460. with more letters than  the iterations as this  has no meaning, also  note
  461. that  even if the number of iterations should be big to let the succession
  462. converge you may leave it low to get nice pictures (this is what's done in
  463. Lyapunovia), after all you want to create nice pictures, if you wanted  to
  464. examine population dynamics you'd have used something less fun !
  465.  If  you want to make a  3DOverlay or have made it  yet and want to change
  466. it's appearance  you may  "Set 3D  Opts", you'll  be asked  level % of the
  467. plateou  and the reduction, the first means how many iterations will be in
  468. the graduated  part (if  you set  50% and  have 719  iterations the points
  469. exiting  with 0-359 iterations  will hav different  heights and the points
  470. with 360-719 iterations will be part of the plateou). The reduction  level
  471. is  used to adjust  the height of  the 3DOverlay, by  default if will be :
  472. height=(maxiterations * (level%))/Reduction.
  473.  
  474.  
  475.        2.3.2     Selecting the fractal type
  476.  
  477.  This is  easily done  by selecting  the "set  fractal" voice  and then by
  478. choosing  the fractal you  prefer. Mandelbrot and  Julia are the classical
  479. ones  found  in  almost  any  fractal generator, Volterra-Lotka is fractal
  480. taken  from  the  book  I  have  (see bibliography for more informations),
  481. Inverted Mandelbrot and Inverted Julia  are the Mandelbrot and Julia  sets
  482. projected  into an inverted space (again see bibliography). Than there are
  483. Julia Parameters plane and Inverted Julia Parameters Plane, Mandelbrot  is
  484. the  Julia Parameters Plane of the origin  of the Gauss plane (0+0i), here
  485. you  may  choose  to  generate  Parameter  Planes of other points. Finally
  486. there's  Lyapunov Space, this one is like  the one found in Lyapunovia and
  487. is basicaly the logistic equation  for a single population drawn  changing
  488. the  maximum population between  an iteration and  the other (see previous
  489. paragraph). When you set  the fractal type you  may want either to  redraw
  490. (Mandelbrot->Julia->JuliaPP) or to restart (Mandelbrot->Volterra->Lyapunov
  491. etc...), a requester will pop-up, just selcet what you prefer.
  492.  
  493.        2.3.3     Determining the type of math
  494.  
  495.  While  exploring fractals one of the most important problems is to choose
  496. a precision that enables to draw an image that is free of defects, but  at
  497. the  same time it's important not to  exaggerate not to slow down too much
  498. the calculation (I won't tell how long does a double precision image  take
  499. to  render in  640x512 on  an A500  but know  that I  care too much for my
  500. computer  to  risk  leaving  it  on  the  whole  night).  So you'll surely
  501. comprehend  that the more precisions are  available the better it is. Some
  502. programs (ehrm...  Actually I  know only  of Mand2000  that's a commercial
  503. program!)  do offer  special routines  to handle  almost any precision but
  504. you'll usually find that even on  fast machines (68040 33Mhz I mean!)  any
  505. precision  higher than  the extended  FPU precision  will result quite too
  506. slow to  use in  non-background situations.  Smart offers  you 6 different
  507. precisions,  they are  (in order  from the  fastest to  the most precise):
  508. Turbo integer, integer, big integer, floating point, double precision  and
  509. extended  FPU precision.  The first  five are  available to  anyone on any
  510. machine, the sixth one  is only available to  FPU owners and 68040  owners
  511. with  fpu-patches (see below).  Smart offers you  to do the selection work
  512. for you,  just choose  the "auto"  option and  you'll never  have to worry
  513. about  the type of math  used (Tip: when drawing  the starting image of an
  514. inverted  Julia  force  the  precision  to  integer, the zones near to the
  515. borders  will be pixelized but the effect may  be fine (I like it!) and it
  516. will also be faster (unless you have an FPU!), Smart had been designed  to
  517. be  as precise as reasonable so I did not set that tip into the program as
  518. default). Please note that if you are  drawing a zone on the border of  an
  519. inverted  Julia that is quite big (the  set not the region!) Smart may get
  520. confused and select the wrong precision, you'll notice it as you'll get  a
  521. pixelization  effect! In these cases you can  use the other options of the
  522. "precision" voice to  force Smart to  use a specific  precision, note that
  523. you  cannot force the Turbo integer precision  as it's useful only on some
  524. occasions and Smart will activate it automatically while using the  'auto'
  525. mode,  also note that  if you don't  have an FPU  and try to force the FPU
  526. routines Smart will complain, if you decide to go ahead anyway expect your
  527. machine to crash as I wrote  the FPU routines in assembler using  directly
  528. the  coprocessor istructions and  not the library  calls that are too slow
  529. (but useful  if you  need to  write a  single source  that uses either the
  530. emulation  routines either the FPU,  in this case I  wrote a separate code
  531. for  processor-based  calculation  and   so  there's  no  reason   to  use
  532. libraries).  Tech note  on how  Smart decides  the precision to use: While
  533. developing Smart I assumed that anyone owning an FPU also owns a processor
  534. that will  compute faster  in integer  (and turbo  integer!) than  the FPU
  535. (that's true if you have a 68020 or more, if you have a FPU and a 68010 or
  536. less  always force the precision to FPU, by the way: why did you do such a
  537. strange thing as connecting a 32 bit FPU to a 16 bit bus ?). Note to 68040
  538. owners: Before  using Smart  you must  run a  system patcher  to trap  the
  539. line-f  exceptions generated by the FPU istructions not supported by 68040
  540. internal FPU, once done this (you probably yet installed it in the startup
  541. :-) you can safely run Smart  and enjoy your machine's FPU speed!,  if you
  542. don't install the patch you'll still be able to use Smart but you won't be
  543. able to use FPU mode.
  544.  
  545.        2.3.4     Regenerating the image
  546.  
  547.  There  are two options to regenerate the image, the first one is "redraw"
  548. and will redraw exactly the selected window with the selected  parameters,
  549. this  is  useful  when  after  changing  the  coloring methods you want to
  550. regenerate the image with the new routines. The second option is "restart"
  551. and as  you'll have  guessed selects  the default  starting window for the
  552. selected  type of set before redrawing. If  the 3DBuffer is active but you
  553. closed the 3DOverlay window and want it back, just edit 3DParametes,  keep
  554. them as they are and you'll get the 3DOverlay back.
  555.  
  556.        2.4     Colors
  557.  
  558.  As  beauty is a subjective idea people  may wish to change the appearance
  559. of the fractals on the screen, this menu does this but it also allows  you
  560. to select the coloring methods of internal and of the external part of the
  561. various  sets.  Note  that  this  is  not  just  an exterior change as the
  562. different  methods  give  different  informations  on the behaviour of the
  563. single points.
  564.  
  565.        2.4.1     File operations
  566.  
  567.  The  two voices "save"  and "load" allow  you to save  and load the whole
  568. color palette used by the program  (all 256 colors) in iff format  so that
  569. you'll  be able to use palettes  edited in your favourite drawing package.
  570.  
  571.        2.4.2     Palette editor
  572.  
  573.  Just  choose "edit" from the  menu and you'll be  faced with the standard
  574. color requester of the ReqTools library, freely edit the palette and  than
  575. choose 'ok' or 'cancel' to confirm the changes or to discard them.
  576.  
  577.        2.4.3     Choosing the rendering methods !!
  578.  
  579.  As I wrote before, this is the main difference with all the other fractal
  580. generators  I could find on Amiga, Smart can assign a color also to points
  581. internal to the set  !. There are two  menus concerning this options,  the
  582. first  one is "external" that  allows you to specify  the type of coloring
  583. you want  in the  external regions.  Here you  have six  choices: "Solid",
  584. "Smooth",  "Binary", "2Binary",  "Checked1" and  "Checked2". The first one
  585. will assign to all  the points not in  the set the same  color. The second
  586. one will assign the usual coloring that's based on the speed of divergence
  587. (this evidences the level curves). The third one is the one I talked about
  588. in chapter one, this is a simple method that assigns to each point outside
  589. the  set a color depending on where the point was when it exited the limit
  590. circle of  divergence, the  color depends  on the  argument of the complex
  591. number,  this brings in evidence the  Hubbard's angles of various point of
  592. the Mandelbrot and Julia sets.  The fourth method is a  personal variation
  593. of  the  third  that's  based  on  a  different  assignment  of the colors
  594. depending an the argument. The fifth and sixth are obtained by mixing  the
  595. "Smooth"  and  "Binary"  options,  they  are  very  impressive  if cycled,
  596. otherwise  they  look  almost  like  "Smooth". The second voice concerning
  597. coloring (and the most important in my opinion :-) is "internal" that lets
  598. you  specify  five  types  of  coloring, they are: "Solid", "Logarithmic",
  599. "Smooth type 1", "Smooth type 2"  and "Logarithmic type 2". The first  one
  600. works as the corresponding one in the external menu, the second, third and
  601. fourth  one give you an idea of how much difference there is in the module
  602. of point end of its (probable) attractor, the fifth one gives you an  idea
  603. of how far the point is from its attractor. The second and the fifth adopt
  604. a  logarithmic  scale  so  to  allow  you  to  see with the same precision
  605. attractors of different orders, the third and fourth do adopt a  corrected
  606. proportional  method, that's less efficient than the logarithmic scale but
  607. it's more colorful and in some cases gives you more informations. The most
  608. significant method in terms of math is the fifth one that does its  better
  609. to  evidence the internal level curves (that's  how fast a point gets near
  610. to its attractor), this is the most similar to the one I found on the book
  611. I wrote about in the previous chapter,  I cannot be sure if it's the  same
  612. but  I believe it to be, the real  problem is the nature of the attractors
  613. that  present  a  periodical  nature,  to  evidence  the biggest number of
  614. attractors  the number of iterations should  be equal to ((K!)-1) that's a
  615. number too high even with K=10 (K=10 -> depth should be = 3628799, too big
  616. for me!). This is a common problem with all the internal coloring methods,
  617. if you use it just select at  least an odd number (that's due to  the fact
  618. that  on some fractals, like Mandelbrot,  the main attractor (that's 0+i0,
  619. the origin of  Gauss' plane) is  present in all  the periodical orbits  so
  620. that  if you choose an even  number all the point will  look to be part of
  621. the domain of the origin!.
  622.  
  623.        2.4.4     Cycling
  624.  
  625.  From V1.1 Smart offers the cycling option, you can use the voices of  the
  626. "Cycle"  item to  turn on/off  cycling, select  the direction  of cycleing
  627. (forward or  backward) and  to speed  up or  slow down  the cycling of the
  628. colors.  You can change the direction of cycling while it's on without any
  629. problem. If you stop  the cycling the colors  will remain the ones  of the
  630. moment  you stopped  it, if  you want  to revert  to the  original palette
  631. select the "Reset" option, if you want to let the actual palette be  fixed
  632. just select "Edit" and click on "Ok" without modifying anything.
  633.  
  634.  
  635.                   Chapter 3: Other features
  636.  
  637.        3.1     Commands of the toolbar
  638.  
  639.  From  V1.2 on Smart features a toolbar that holds buttons for some of the
  640. most used  commands, it  also offers  a couple  of functions NOT available
  641. from  the menu. The top two gadgets are used to increase/decrease the size
  642. of the zoombox (and so to control the zoomrate), the two just below  allow
  643. to  zoom/unzoom and  the first  of the  next line  let's the user hide the
  644. zoombox (not available from menu). The one immediately on the right  let's
  645. the  user turn  on/off the  coordinate disply  option, when this option is
  646. active  if  the  cursor  passes  on  the  image  the  coordinates  of  the
  647. underlaying point will be displayed, this is really useful while using the
  648. "Set  point" option. The four  buttons below these ones  allow the user to
  649. turn on/off the color cycling, change its direction, speed up or slow down
  650. it. There are  than two icons  to show the  information box and  the about
  651. message. The last two buttons will let the user save/load everything.
  652.  
  653.        3.2     Keyboard commands
  654.  
  655.  Many  menu options do  have a keyboard  shortcut, and can  so be used via
  656. keyboard, however there is a simply trick available only from keyboard, if
  657. autozoom is off and the zoombox is  visible you can use the arrow keys  to
  658. move it around the image.
  659.  
  660.  
  661.        3.3     Preferences and setup
  662.  
  663.  If  you want Smart  to start with  your configuration as  default you may
  664. save your  preferences as  "SmartFractal.prefs" either  the "S:" directory
  665. either  in the same directory of Smart,  note: if you run Smart from SHELL
  666. you'll have to save the  preferences in the 'current' directory,  I.E.: if
  667. you  are  in  directory  "HD1:Utils/"  and  Smart  is  in  directory "HD2:
  668. Utils/Math/SmartFractal" (and it is the path) you can run Smart by  typing
  669. "SmartFractal",  but  if  your  preferences  are not in "HD1:Utils/" Smart
  670. won't use them.  So if you  frequently use Smart  from SHELL you'd  better
  671. place  the preferences in  the "S:" directory.  An other feature that will
  672. surely be appreciated by  someone is that you  can use any image  obtained
  673. with  Smart as default one, just save it as "SmartFractal.iff" in the same
  674. directory of Smart (the notes for SHELL  users about preferences are still
  675. valid).
  676.  Another feature that SHELL users will appreciate is that from V1.1  Smart
  677. will  auto-detach  from  the  current  process,  running in background and
  678. letting  you  close  the  Shell  whenever  you want without having to quit
  679. Smart.
  680.  
  681.  
  682.                   Chapter 4: Miscellaneous informations
  683.  
  684.        4.1     How to contact the author
  685.  
  686.  Well, if you have been reading the document you'll probably have also the
  687. program and my contact address but anyway here it is:
  688.  
  689.  Mail to:      Simone Avogadro
  690.                viale Rimembranze, 33
  691.                Appiano Gentile
  692.                  22070 (CO)
  693.                   ITALY
  694.  
  695.  E-mail on Internet to: simonea@varano.ing.unico.it
  696.  
  697.  If  you cannot access the internet but have access to the Fidonet you can
  698. use a  gateway to  Internet, if  you don't  know how  to do  that ask your
  699. sysop,  as I don't have direct access to  Fidonet I cannot tell you how to
  700. do it (sorry:-),  but note that  this method is  slow (usually it  takes a
  701. month or more for the mail to arrive to me!).
  702.  There  are no known bugs in Smart but  I can't tell if there are not bugs
  703. or if  we simply  don't now  about them  :-}, if  you find  any bug please
  704. report  it to me, possibly with a  clear description of how to recreate it
  705. (please state the  machine configuration you  have, etc.). Reporting  bugs
  706. helps me to keep the program safe so, expecially if you found a nasty one,
  707. report it to me as soon as possible.
  708.  
  709.        4.2     Improvements
  710.  
  711.  Here  I give a  list of improvements  that I'd like  to add to Smart if I
  712. have time (Ie: If I successfully take my exams) and if I feel Smart to  be
  713. appreciated (feedback is important, even an E-mail makes the difference!):
  714.  
  715.  o Make use of MUI library for 2.0 users
  716.  o Support for xpklibrary de/compression
  717.  o A "Pickup" menu so that you can stop drawing, save the partial work
  718.    and than pickup your work later (very useful for time-consuming
  719.    drawings!)
  720.  o A speedup buffer, so you can zoom faster
  721.  o Faster rendering routines
  722.  o Better color cycling feature
  723.  o 3D mapping of fractals (spherical and continuous axonometrical)
  724.  o More types of fractals
  725.  o More coloring techs
  726.  
  727.  Changes that will take a bit more to be done:
  728.  
  729.  o Arexx support (I got the documentation for it and I will do it as
  730.    soon as I have enough time)
  731.  o Real-time zoom (like Mand2000)
  732.  
  733.  As you see I have a lot of ideas and so there are a lot of possibilities,
  734. let  me know  your preferences  and if  you have  any proposal for special
  735. features not mentioned here (please don't just say: "I want Smart to  draw
  736. in  real time, support  custom fractals and  display images directly on my
  737. Virtual reality glasses" :-).
  738.  
  739.        4.3     Known bugs
  740.  
  741.  There's only a known bag so far,  if you use KS1.3 you may happen  to see
  742. timings like 0:00:00. I'm sorry for this, under KS1.3 the timing functions
  743. of  the OS  are quite  inaccurate and  I didn't  want to  write own timing
  744. functions (lazy guy :-).
  745.  There's another problem, some  precisions may contrast with  some drawing
  746. options,  so far Volterra and Lyapunov  won't work with BigInteger math so
  747. Smart overrides these modes and switches to Float. If you use  Tesselation
  748. you  won't be able  to use Float  as Smart will  override your options and
  749. switch to  Double, this  should not  be a  problem as  the use of Float is
  750. quite  restricted,  infact  the  difference  between BigInteger a Float is
  751. little, so probably you'd have to switch to Double quite soon (a couple of
  752. zooms).
  753.  This final  one is  not a  bug but  rather an  advice. From V1.2 the info
  754. window also displays infos on the machine it detects, CPU+FPU are OK but I
  755. don't  know a SAFE way  for identifying AGA and  so it detects KS3.0+ (AGA
  756. support) and not the chipset.
  757.  
  758.        4.4     History
  759.  
  760.  V1.0 in 14/6/94 : First release
  761.  V1.1 in 18/7/94 (Internal) : Never released but really stable.
  762.    - When run from CLI/SHELL it now auto detaches and goes in background
  763.    - Added two voices to Prefs menu to load separately Options and Spots
  764.    - Added the option to compress images with standard Iff method
  765.    - Added color cycling
  766.    - Added "Be Quiet" toggle
  767.    - Added the zoombox
  768.  V1.2 in 20/9/94 : No known bugs.
  769.    - Added support for any system monitor with a standard Screenmode
  770.      requester
  771.    - Added a toolbar to make interaction more immediate and intuitive :->
  772.    - Added new fractals "JuliaPP" and "Inverted JuliaPP"
  773.    - Added 64 bit integer math, about 3-4 times faster than "float" and
  774.      90% of the times with equivalent precision, made separate versions
  775.      for 68000-010 and 68020+
  776.    - Added the ability to show cursor coordinates on the screen title
  777.    - Fixed a bug in V1.1 that caused some problems with packed iff
  778.    - Now Smart asks for confirmation before overwriting existing files
  779.      this feature can be disabled with the "Be Quiet" switch
  780.    - Fixed a bug that didn't allow to use more than 65535 iterations with
  781.      FPU precision
  782.    - Micro-buffering almost halves the time taken to render quite uniform
  783.      areas.
  784.  V1.3 in 20/1/95 : No known bugs.
  785.    - Added the option to import alien preferences, support for:
  786.        Mandelmania, MisterM, Lyapunovia, MandelA (not 100%).
  787.    - Rewrote some FPU stuff, now 5-10 % faster!
  788.    - Added a new set type: Lyapunov Space
  789.    - Added 3D buffer, allowing 3D overlay (quite primitive but still
  790.      better than nothing :-)
  791.    - Added Color buffer, lets you change the coloring method without
  792.      having to redraw (when active about 2-40 secs slower :-< ).
  793.    - Added "Auto update", if you raise the number of iterations you'll
  794.      be able to redraw only a minor part (Idea from Mand2000 :-)
  795.    - Added a new drawing mode: Tesselate (Like MisterM, FractInt an
  796.      others), about 20-40% faster !
  797.    - New 3.0 Look even for KS1.3 owners!
  798.    - Finally fixed the 24Bit color support, now you can use 24 Bit colors
  799.      in all of their glory!
  800.    - Fixed problem with Autoscroll (not active in V1.2!).
  801.    - Added AmigaGuide documentation.
  802.    - Added some new spots.
  803.    - Added a timig feature, now you know exactly how long it took to
  804.      complete the image
  805.    - Added option to set program priority
  806.  
  807.  
  808.        4.5     People I wish to thank
  809.  
  810.  Oh, well, there's  a lot of  people I should  thank, so in  no particular
  811. order:  Mom, dad and  my brother for  supporting me and  being patient, my
  812. friends for their interest and then in particular:
  813.  Stefano Volponi for  correcting the errors  in this text  (as you'll have
  814. supposed English is not my native language!)
  815.  Donato  Corvi for beta-testing  on his fat  A1200+68030 33Mhz+68882 48Mhz
  816. FPU +8Meg 32Bit fast. Also for letting  me work at his home in an  attempt
  817. to  fix a nasty bug  with FPU (finally I  caught it!). Most of the awesome
  818. new spots found in V1.2 are due to his research.
  819.  Cristiano Preda for beta-testing  on his monster (A2000+8Meg  32bit fast,
  820. 68040  30Mhz, 2Meg Merlin  graphic adapter), and  for procuring me the iff
  821. documentation.
  822.  Other people I wish to thank:
  823.  Fabrizio Sala (sysop of Fast Enough BBS) for spreading (I hope!) Smart on
  824. Fidonet
  825.  Nico François for  developing the ReqTools  library (req.library is  cool
  826. but reqtools is cooler!) (if you want to know more about Reqtools read the
  827. SHAREWARE.DOC file)
  828.  Enrico M. Ferrari for paying attention to SmartFractal and for his review
  829. on MC MicroComputer
  830.  And all the others I forgot!
  831.  
  832.        4.6     Bibliography
  833.  
  834.  The book I wrote about many times in this text is:
  835. H.O.Peitgen  -  P.H.Richter,"The  Beauty  of  Fractals,  Images of Complex
  836. Dynamical Systems",1986, Springer Verlang - Berlin, Heidelberg, New York.
  837.  If you have a secondary school  preparation and like math you'll be  able
  838. to  comprehend the principles explained in this book and even if you don't
  839. understand mathematics you'll find  the Interventions very interesting  as
  840. they  are comprehensible  by anyone  and express interesting philosophical
  841. considerations; you'll also find an  interesting appendix on how to  write
  842. simple  programs  to  generate  fractals,  if  you are a bit more advanced
  843. there's  a  section  commenting  some  advanced  techs  you'll surely find
  844. interesting (even if some do require too much computational power to adapt
  845. them  for our amigas). If you are Italian  (As I am!) you'll also find the
  846. Italian translation of this book,  it's called "La Bellezza dei  Frattali"
  847. and  is  published  by  Bollati-Boringhieri,  I  found  it  to  be  a good
  848. translation not presenting problems with traslation of mathematical therms
  849. (thanks to the work of Umberto Sampietri).
  850.  If you want to read something more practically-oriented you should try to
  851. procure  old  numbers  of  "Scientific  American"  (or  translations) that
  852. featured   interesting  articles  about   fractals  and  non-deterministic
  853. dynamics.
  854.  If,  instead,  you  are  more  interested  in the mathematical aspect you
  855. should  search for a book of  B.Mandelbrot that's considered the father of
  856. the modern theory of fractals. I just mention the most known:
  857.  Benoit.B.Mandelbrot,"The  Fractal  Geometry  of  Nature",1982,   Freeman,
  858. San Francisco.
  859.  
  860.  
  861.  I  hope you like Smartfractal and  find interesting images that meet your
  862. sense of beauty.
  863.                                                   Simone Avogadro
  864.  
  865.  
  866.  
  867.  
  868.